bidirectional effect type system